package ar.uade.edu.fain.ad.server.business;

import java.util.HashMap;
import java.util.Map;

public class ItemDeposito {

	private Long id;
	private Producto producto;
	private Long cantidad;
	private Map<Long, Integer> cantidadPorVencimiento;

	public ItemDeposito() {
		super();
		this.cantidad = 0L;
		this.cantidadPorVencimiento = new HashMap<Long, Integer>();
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Producto getProducto() {
		return producto;
	}

	public void setProducto(Producto producto) {
		this.producto = producto;
	}

	public Long getCantidad() {
		return cantidad;
	}

	public void setCantidad(Long cantidad) {
		this.cantidad = cantidad;
	}

	public Map<Long, Integer> getCantidadPorVencimiento() {
		return cantidadPorVencimiento;
	}

	public void setCantidadPorVencimiento(
			Map<Long, Integer> cantidadPorVencimiento) {
		this.cantidadPorVencimiento = cantidadPorVencimiento;
	}

	public void contabilizar(final ItemRemito itemRemito) {
		this.cantidad += itemRemito.getAceptada();
		if (getCantidadPorVencimiento().containsKey(
				itemRemito.getFechaCaducidad())) {
			final Integer valorPrevio = getCantidadPorVencimiento().get(
					itemRemito.getFechaCaducidad().getTime());
			getCantidadPorVencimiento().put(
					itemRemito.getFechaCaducidad().getTime(),
					valorPrevio + itemRemito.getAceptada());
		} else {
			getCantidadPorVencimiento().put(
					itemRemito.getFechaCaducidad().getTime(),
					itemRemito.getAceptada());
		}
	}

}
